Dans Linux, l' « Tout est un fichier » abstraction mappe toutes les sources d'entrée/sortie — des fichiers ordinaires aux réseaux sockets—vers un flux uniforme d'octets. Cette interface unifiée permet une entrée/sortie au niveau système cohérente entrée/sortie au niveau système pour gérer un processus serveur et processus client transaction à travers processeurs multi-cœurs.
Le modèle unifié
Que le programme accède à un fichier ordinaire, répertoire, ou un matériel comme un adaptateur réseau, il utilise les mêmes primitives. Comme on peut le voir dans Organisation matérielle (Figure 11.2), le système d'exploitation relie le processeur et la mémoire aux périphériques via le bus d'entrée/sortie, en traitant le réseau comme un fichier afin de simplifier la concurrence sur les processeurs multi-cœurs.
Entrée/sortie robuste et métadonnées
Pour gérer Courts comptages (où les octets demandés $k$ sont liés aux octets disponibles $m$ par $k \ge m$), le package Rio (entrée/sortie robuste) fournit rio_readinitb pour entrée tamponnée. Les métadonnées sont gérées via stat, tandis que les autorisations telles que O_RDWR et S_IROTH sont restreintes par le umask.